//
//  ParametersVCO.h
//  CocoaSynth
//
//  Created by Thomas Dupont on 21/02/10.
//  Copyright 2010 Apple Inc. All rights reserved.
//

#import <Cocoa/Cocoa.h>

#import "ParametersModule.h"

@class ModuleVCOViewController;

/*!
 @class			ParametersVCO
 @abstract		Controleur de la vue de param&eacute;trage du VCO.
 */
@interface ParametersVCO : NSViewController<ParametersModule> {
	IBOutlet NSSlider* rangeSlider;
	IBOutlet NSSlider* frequencySlider;
	IBOutlet NSSlider* amountSlider;
	IBOutlet NSTextField* rangeText;
	IBOutlet NSTextField* frequencyText;
	IBOutlet NSTextField* amountText;
	IBOutlet NSTextField* resultText;
	float range;
	float frequency;
	float amount;
	ModuleVCOViewController* module;
}

/*!
 @abstract		Le controleur du module VCO associ&eacute; au controleur de param&eacute;trage.
 @discussion	Lorsque un changement est effectu&eacute; sur la vue de param&eacute;trage,
 l'information est remont&eacute;e au controleur du module.
 @param			aModule le controleur de module VCO associ&eacute; au controleur de param&eacute;trage.
 */
@property (assign) ModuleVCOViewController* module;

/*!
 @abstract		Le NSSlider utilis&eacute; pour r&eacute;gler la valeur du range du VCO.
 @param			aSlider Le slider associ&eacute; au range du VCO.
 */
@property (assign) NSSlider* rangeSlider;

/*!
 @abstract		Le NSSlider utilis&eacute; pour r&eacute;gler la valeur de la fr&eacute;quence du VCO.
 @param			aSlider Le slider associ&eacute; &agrave; la fr&eacute;quence du VCO.
 */
@property (assign) NSSlider* frequencySlider;

/*!
 @abstract		Le NSSlider utilis&eacute; pour r&eacute;gler la valeur de l'amount du VCO.
 @param			aSlider Le slider associ&eacute; &agrave; l'amount du VCO.
 */
@property (assign) NSSlider* amountSlider;

/*!
 @abstract		Le NSTextField utilis&eacute; pour afficher la valeur du range du VCO choisie.
 @param			aTextField Le textField utilis&eacute; pour afficher la valeur du range du VCO choisie.
 */
@property (assign) NSTextField* rangeText;

/*!
 @abstract		Le NSTextField utilis&eacute; pour afficher la valeur de la fr&eacute;quence du VCO choisie.
 @param			aTextField Le textField utilis&eacute; pour afficher la valeur de la fr&eacute;quence du VCO choisie.
 */
@property (assign) NSTextField* frequencyText;

/*!
 @abstract		Le NSTextField utilis&eacute; pour afficher la valeur de l'amount du VCO choisie.
 @param			aTextField Le textField utilis&eacute; pour afficher la valeur de l'amount du VCO choisie.
 */
@property (assign) NSTextField* amountText;

/*!
 @abstract		Le NSTextField utilis&eacute; pour afficher la valeur de la fr&eacute;quence du VCO r&eacute;sultant des param&eacute;trages.
 @param			aTextField Le textField utilis&eacute; pour afficher la valeur de la fr&eacute;quence du VCO r&eacute;sultant des param&eacute;trages.
 */
@property (assign) NSTextField* resultText;

- (IBAction)rangeChange:(id)sender;
- (IBAction)frequencyChange:(id)sender;
- (IBAction)amountChange:(id)sender;
- (void)load;
- (void)refreshResult;

@end
